2-2. Computation and Representation

7/31/2025

https://introtcs.org/public/lec_02_representation.html#cantorsec

์นธํ† ์–ด ์ •๋ฆฌ

์œ„์˜ ์ˆ˜์—…๋‚ด์šฉ ์ •๋ฆฌ๋ฅผ ๋ณด๋ฉด 0๊ณผ1์˜ ์กฐํ•ฉ์€ ๋ฌดํ•œํ•˜์ง€๋งŒ, ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ชจ๋“ ๊ฑธ ๋‹ค 0๊ณผ1๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ํ–ˆ๋‹ค. (์œ„์˜ ์˜ˆ์‹œ์—์„œ๋„ ๋ดค๋“ฏ 12.3์„ 0๊ณผ1๋งŒ์œผ๋กœ ํ‘œํ˜„ํ•ด๋‚ด์ง€ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—)
๊ทธ๋Ÿฌ๋ฉด์„œ ๊ต์žฌ๋Š” ์นธํ† ์–ด์˜ ์ง‘ํ•ฉ๋ก ์„ ์†Œ๊ฐœํ•˜๋Š”๋ฐ, ์ฒ ํ•™์ˆ˜์—…๋•Œ ์ข…์ข… ๋“ค์–ด๋ด์„œ ์ต์ˆ™ํ•œ ์ด๋ฆ„์ด์—ˆ๋‹ค.

Countable sets ๊ฐ€์‚ฐ์ง‘ํ•ฉ

์–ด๋–ค ์ง‘ํ•ฉ S๊ฐ€ ๊ฐ€์‚ฐ์ง‘ํ•ฉ์ด๋ž€๊ฑด ๋ฌด์Šจ ์˜๋ฏธ๋ƒ๋ฉด, ์—ฌ๊ธฐ์— ๋Œ€์‘ํ•˜๋Š” onto map C๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์–ด๋–ค ์ง‘ํ•ฉ A์—์„œ C๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด S์˜ ๋ชจ๋“  ์š”์†Œ๋“ค์ด A์˜ ์š”์†Œ๋“ค๊ณผ ๋งตํ•‘์ด ๋œ๋‹ค๋ฉด ๊ฐ€์‚ฐ ์ง‘ํ•ฉ์ด๋ผ๋Š” ๋œป.
์ž์—ฐ์ˆ˜๊ฐ€ ๋Œ€ํ‘œ์ •์ธ ๊ฐ€์‚ฐ ์ง‘ํ•ฉ๋‹ˆ๋‹ค. 0๊ณผ1์„ ์กฐํ•ฉํ•ด์„œ ๋ชจ๋“  ์ˆซ์ž๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์œผ๋‹ˆ๊นŒ. ์ฆ‰ ์œ„์—์„œ ๋ณธ NtS ํ•จ์ˆ˜๊ฐ€ ์žˆ์œผ๋‹ˆ๊นŒ.
๊ทธ๋Ÿฐ๋ฐ ์‹ค์ˆ˜๋ฅผ ์ด์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์—์„œ ๋ณธ๊ฒƒ์ฒ˜๋Ÿผ ์–ด๋–ค ์‹ค์ˆ˜๋Š” 0๊ณผ 1๋งŒ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ž˜์„œ ์‹ค์ˆ˜๋“ค์˜ ์ง‘ํ•ฉ์€ ๋ถˆ๊ฐ€์‚ฐ ์ง‘ํ•ฉ. ๊ทธ๋ฆฌ๊ณ  ๋ถˆ๊ฐ€์‚ฐ ์ง‘ํ•ฉ์€ ๊ฐ€์‚ฐ ์ง‘ํ•ฉ๋ณด๋‹ค ํฌ๋‹ค.

def diagonalize(f,n):
    """Input: function f mapping integers to sequences of 0 and 1. A number n
       Output: a sequence L of length n that is not in the image of f on {0....n-1}
    """
    return [1-f(k)[k] for k in range(n)]
#%%

# Example:
def f(k): # some way to map integers to lists of length 100
    return [(k * i) % 2 for i in range(100)]
    
D = diagonalize(f,100)
print(D)

#%%
found = False
for k in range(100):
    if D == f(k):
        print("D is in f's image")
        found = True
        break

if not found: print("D is not in f's image")

diagonalize()๋Š” 0๋ถ€ํ„ฐ n๊นŒ์ง€
f(k)ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•ด์„œ 1์—์„œ ๊ทธ๊ฒƒ์„ ๋บ€ ๊ฐ’๋“ค์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
f(k)์ด ํ˜ธ์ถœ๋˜๋ฉด
0๋ถ€ํ„ฐ 100๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ k์™€ ๊ณฑํ•ด์„œ ๋‚˜์˜จ ์ˆ˜๋ฅผ mod 2 ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

f(0)์€ k๊ฐ€ 0์ด๋‹ˆ ๋ชจ๋“  ์ˆซ์ž๊ฐ€ ๋‹ค 0.
f(0)[0]์€ 0, 1-1=1.

f(1)์€ 1,2,3,4,5, ..., 100๋“ค์„ ๋‹ค %2 ํ•˜๋ฉด 1,0,1,0,...0์ด ๋œ๋‹ค.
f(1)[1]์€ 1, 1-1=0.

f(2)๋Š” 2,4,6,8, ...., 200 ์ด๊ณ  ๋‹ค %2 ํ•ด๋ณด๋ฉด 0,0, ...., 0.
f(2)[2]๋Š” 0, 1-0=1.

๊ทธ๋ ‡๊ฒŒ D์—๋Š” [1,0,1, .....] ์ด ๋‹ด๊ธด๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ฒ€์ฆ๋‹จ๊ณ„ k=0 ๋ถ€ํ„ฐ 100๊นŒ์ง€
f(0)์€ [0,0,0, .... , 0] != D.
f(1)์€ [1,0,1,0,....., 0] != D.

๊ทธ๋Ÿฌ๋‹ˆ๊นŒ f๊ฐ€ 100๊ฐ€์ง€ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ 0~100์˜ ์ž์—ฐ์ˆ˜๋ฅผ 0๊ณผ1๋กœ ํ‘œํ˜„ํ•œ๊ฑฐ๋ผ๋ฉด
D๋Š” ๊ฐf(k)[k]์˜ ์ž๋ฆฌ ์ˆซ์ž์˜ ๋ฐ˜๋Œ€๋˜๋Š” ์ˆซ์ž๋ฅผ ๊ฐ€์ง€๋Š”, ๊ธฐ์กด์— ์—†๋˜ ์ƒˆ๋กœ์šด ํ‘œํ˜„์ด๋‹ค.